Main ----- Copyright Up -------- ----

Flags for tags and macros

Within <$macro> and <$deftag>, you can use several flag to tell hsc how to handle this macro/tag. Legal flags for <$macro> are:
/ONLYONCE (short: /1)
macro/tag is required at the most once within a document
/REQUIRED (short: /R)
macro/tag is required at least once within a document
/MUST_BE_INSIDE (short: /MBI)
Needs a string as argument, that contains a list of container tags, that must be started before tag is allowed to be used.
Example:
The tag <LI> must be used inside some sort of lists only, therefor it's /MBI="ul|ol|dir|menu" is used. The '|' is used as a separator for multiple tags.
/NOT_ALLOWED_WITHIN (short: /NAW)
Like /MBI, but this time tags that must not be used before. For example, a nested usage of <A> is not allowed, therefor /NAW="a" is used.
Additionally, the following flags can be used with <$deftag>
/CLOSE (short: /C)
tag is a container and requires a corresponding closing tag.
/AUTOCLOSE (short: /AC)
Used for <P> and <LI>, which can be used as container or single tag depending on the HTML version.
/JERK (short: /J)
tag is only used by jerks
/LAZY (short: /L)
This flag has just been for my lazyness and defines some often needed attributes with a single letter; `c' for `CLASS:string', `h' for `HREF:uri', `i' for `ID:id', `k' for `CLEAR:bool', `l' for `LANG:string', `m' for `MD:string', `s' for `SRC:uri', `w' for `NOWRAP:bool'. For example, use /LAZY="cil".
/OBSOLETE (short: /O)
tag is obsolete and should not be used any more. This eg. concerns <LISTING>.
/SKIPLF (short: /S)
skip a linefeed ("\n") that comes immediatly after the tag. This is only useful for some of hsc's special tags and only avoids some uneccessary empty lines.
/SPECIAL (short: /SPC)
This one marks tags which are no "normal" tags with some attributes, but have their own syntax. The only HTML-tag which has this flag set is <!> (for SGML comments).

To define a closing macro, don't use /CLOSE, but define the macro a second time, with a "/" as the first character of its name. For examples, see the section about <$macro>.


Thomas Aglassinger ( agi@giga.or.at ), 15-May-1996